/**
 * 
 */
$(document).ready(
	function() {
	    var domObjs = {
	        W                   : $(window)       ,
	        grids : {
	            $leftDiv         : $(".leftDiv"),
	        $rightDiv		: $(".rightDiv"),
	        $cusListDiv : $("#cusListDiv"),
	        $cusListGrd : $("#cusListGrd")
	    }
	};
	
	$("form").submit(function() {
		return false;
	});
	var YNBean = {
		Value : [ 'Y', 'N' ],
		Text : {
			Y : 'Y:YES',
			N : 'N:NO'
		}
	};
	var routeBean = CreateRouteBean();
	var inObj_Query;
	var VAL = {
		// 此处不同
		T_FBPBISCUS : "FBPBISCUS",
		NORMAL : "0000000",
		EVT_USER   : $("#userId").text(),
		DISABLED_ATTR : {
			"disabled" : true
		},
		ENABLED_ATTR : {
			"disabled" : false
		}
	};
	
	var domObj = {
		$cusListDiv : $("#cusListDiv"),
		$cusFirmsSel : $("#cusFirmsSel"),
		$cusNum : $("#cusNum"),
		$cusNam : $("#cusNam"),
		$cusDes : $("#cusDes"),
		$addrInfo : $("#addrInfo"),
		$cusFirmsSel : $("#cusFirmsSel"),
	
		buttons : {
			$query_btn : $("#query_btn"),
			$delete_btn : $("#delete_btn"),
			$add_btn : $("#add_btn"),
			$update_btn : $("#update_btn"),
			$copy_btn : $("#copy_btn"),
			$save_btn : $("#save_btn"),
			$rollback_btn : $("#rollback_btn"),
			$clear_btn : $("#clear_btn"),
		},
	
		grids : {
			$cusListGrd : $("#cusListGrd"),
		},
	
		dialogs : {
			// 客户查询对话框
			$queryCusDefDialog : $("#queryCusDefDialog"),
			$queryCusDefDialog_helpLineSpn : $("#queryCusDefDialog_helpLineSpn"),
			$queryCusDefDialog_CusIdTxt : $("#queryCusDefDialog_CusIdTxt"),
			// 客户查询的按钮
			$queryCusDefDialog_cancelBtn : $("#queryCusDefDialog_cancelBtn"),
			$queryCusDefDialog_queryBtn : $("#queryCusDefDialog_queryBtn"),
	
		}
	};
	
	//jqGrid表格自适应
	function resizeFnc(){
	    var grdDivHeight,grdDivWidth;
	    grdDivWidth = domObjs.W.width() - 120 - domObjs.grids.$rightDiv.width();
	    grdDivHeight = domObjs.W.height() - domObjs.grids.$leftDiv.offset().top;
	
	    domObjs.grids.$leftDiv.height(grdDivHeight);
	    domObjs.grids.$cusListDiv.width(grdDivWidth);
	    domObjs.grids.$cusListDiv.height(grdDivHeight*0.99 - 51);
	    domObjs.grids.$cusListGrd.setGridWidth(grdDivWidth*0.99);
	    domObjs.grids.$cusListGrd.setGridHeight(grdDivHeight*0.95 - 101);
	};
	
	domObjs.W.resize(function() {
	    resizeFnc();
	});
	
	/*------------------------------------控制函数---------------------------------------*/
	var controlsFunc = {
		/* 初始化客户代码、初始化化客户名称、描述 */
		initCusID : function() {
			$cusNum.val("");
			$cusNam.val("");
			$cusDes.val("");
	
		},
	
		/* 默认选择表中第一行 */
		com_get_1st_inf : function() {
			// 返回当前grid里所有数据的id
			var rowIds = domObj.grids.$cusListGrd
					.jqGrid('getDataIDs');
			if (rowIds.length > 0) {
				// 默认选择第一行数据
				domObj.grids.$cusListGrd.setSelection(
						rowIds[0], true);
			}
		},
	
		/* 初始化客户列表 */
		initCusListGrd : function() {
			domObj.grids.$cusListGrd.jqGrid({
				datatype : "local",// 请求数据返回的类型。可选json,xml,txt
				autoheight : true,
				mtype : "POST",// 向后台请求数据的ajax的类型。可选post,get
				autowidth : true,// 宽度根据父元素自适应
	            shrinkToFit:false,
				scroll : true,
				resizable : true,
				rownumbers : true,
				loadonce : true,
				viewrecords : true,
				colModel : [ {
					name : 'cus_id',
					index : 'cus_id',
					label : '客戶/厂商代码',
					width : 140
				}, {
					name : 'cus_name',
					index : 'cus_name',
					label : '客戶/厂商名称',
					width : 170
				}, {
					name : 'cus_desc',
					index : 'cus_desc',
					label : '客户/厂商描述',
					width : 190
				} ],
	
				pager : "cusListPg",
				onSelectRow : function(id) {
					details(id);
				}
			})
		},
	
		initCusTypSel : function() {
			comAddValueByDataCateFnc("#cusFirmsSel", "CSCT", "data_ext","data_desc",true);
		},
	};
	
	/*-----------------------------------------对话框函数-----------------------------------*/
	var dialogFnc = {
		// 查询对话框函数
		queryCusDialog : {
			queryFnc : function() {
				// outObj是查询回来的对象 ， mdlId 是查询的内容,iary是一个数组对象
				var outObj, cusId, iary = {};
				cusId = domObj.dialogs.$queryCusDefDialog_CusIdTxt
						.val();
				if (cusId) {
					iary.cus_id = cusId;
				}
				inObj_Query = {
					trx_id : VAL.T_FBPBISCUS,
					action_flg : 'Q',
					iary : [ iary ]
				};
				outObj = comTrxSubSendPostJson(inObj_Query);
				if (outObj.rtn_code === VAL.NORMAL) {
					// 返回正常
					setGridInfo(outObj.oary, "#cusListGrd");
					domObj.dialogs.$queryCusDefDialog.modal("hide");
				}
			}
		},
	};
	
	/*--------------------------------按键函数------------------------------------------------------*/
	var btnsFnc = {
		// 客户信息查询
		query_func : function() {
			// 客户信息查询对话框的模型
			domObj.dialogs.$queryCusDefDialog.modal({
				backdrop : true,
				keyboard : false,
				show : false
			});
			domObj.dialogs.$queryCusDefDialog.modal("show");
			// 查询对话框的输入变成可输入
			domObj.dialogs.$queryCusDefDialog_CusIdTxt
					.attr(VAL.ENABLED_ATTR);
			domObj.dialogs.$queryCusDefDialog_CusIdTxt.val("");
			domObj.dialogs.$queryCusDefDialog_CusIdTxt.focus();
			// 查询按钮绑定click事件函数
			domObj.dialogs.$queryCusDefDialog_queryBtn.bind(
					'click', dialogFnc.queryCusDialog.queryFnc);
	
		},
		delete_func : function() {
			var selRowId, rowData, iary, inObj, outObj;
			// 获得选中的行ID
			selRowId = domObj.grids.$cusListGrd.jqGrid(
					"getGridParam", "selrow");
			if (!selRowId) {
				showErrorDialog("", "请选择需要删除的客户/厂商信息");
				return false;
			}
			// 删除按钮绑定删除事件
			domObj.buttons.$delete_btn.showCallBackWarnningDialog({
				errMsg : "是否删除客户/厂商信息,请确认!!!!",
				callbackFn : function(data) {
					if (data.result == true) {
						// 获得选中行的数据
						rowData = domObj.grids.$cusListGrd
								.jqGrid("getRowData",
										selRowId);
						iary = {
							cus_id : rowData.cus_id
						};
						inObj = {
							trx_id : VAL.T_FBPBISCUS,
							action_flg : "D",
							iary : [ iary ]
						};
						outObj = comTrxSubSendPostJson(inObj);
						if (outObj.rtn_code === VAL.NORMAL) {
							SelectDom.setSelect($("select"), "", "");
                            $("input").val("");
							showSuccessDialog("删除客户/厂商信息成功");
							domObj.grids.$cusListGrd.jqGrid("delRowData",selRowId);
						}
					}
				}
			});
		},
	
		add_func : function() {
			if (domObj.$cusNum.attr("disabled") != "disabled") {
				showErrorDialog("", "已经在新增中，请勿重复新增");
				return false;
			}
			$("#update_btn").attr("disabled", true);
	
			// 右边信息栏清空 +初始化
			$("input[type='text']").val("");
			SelectDom.setSelect($("select"), "", "");
	
			// 使输入框变成可编辑
			$("#cusDefConditionForm input").attr(
					VAL.ENABLED_ATTR);
			$("#cusDefConditionForm select").attr(
					VAL.ENABLED_ATTR);
			domObj.$cusNum.focus();
		},
	
		update_func : function() {
			var selRowId = domObj.grids.$cusListGrd.jqGrid(
					"getGridParam", "selrow");
			if (!selRowId) {
				showErrorDialog("", "请选择需要修改的客户/厂商信息");
				return false;
			}
			$("#cusDefConditionForm input:not(#cusNum)").attr(
					VAL.ENABLED_ATTR);
			$("#cusDefConditionForm select").attr(
					VAL.ENABLED_ATTR);
			domObj.$cusDes.focus();
		},
	
		copy_func : function() {
			var selRowId = domObj.grids.$cusListGrd.jqGrid(
					'getGridParam', 'selrow');
			if (selRowId == null) {
				showErrorDialog("", "请选择需要复制的客户/厂商信息！");
				return false;
			}
	
			$("input").attr({
				'disabled' : false
			});
			$("select").attr({
				'disabled' : false
			});
			domObj.$cusNum.focus();
		},
	
		rollback_func : function() {
			$("#cusDefConditionForm input").attr(
					VAL.DISABLED_ATTR);
			$("#cusDefConditionForm select").attr(
					VAL.DISABLED_ATTR);
			var outObj = comTrxSubSendPostJson(inObj_Query);
			if (outObj.rtn_code === VAL.NORMAL) {
				setGridInfo(outObj.oary, "#cusListGrd");
				domObj.dialogs.$queryCusDefDialog.modal("hide");
				$("#update_btn").attr("disabled", false);
				$("input").val("");
				$("select").empty();
			}
		},
	
		// 有问题..
		save_func : function() {
			var actionFlg, inObj, outObj, iary, newRowId, selRowId;
			// cusNum可编辑说明为新增，不可编辑说明为修改
			actionFlg = domObj.$cusNum.attr("disabled") === "disabled" ? "U"
					: "A";
			// 获取信息框中的值
			// 客户代码
			cusNum = domObj.$cusNum.val().trim();
			if (!cusNum) {
				showErrorDialog("", "客户/厂商代码不能为空");
				return false;
			}
			cusNam = domObj.$cusNam.val().trim();
			if(!cusNam){
				showErrorDialog("", "客户/厂商名称不能为空");
				return false;
			}
			cusDes = domObj.$cusDes.val().trim();
			if(!cusDes){
				showErrorDialog("", "客户/厂商描述不能为空");
				return false;
			}
			cus_typ = domObj.$cusFirmsSel.val();
			if(!cus_typ){
				showErrorDialog("", "客户/厂商类型不能为空");
				return false;
			}
			addr_info = domObj.$addrInfo.val();
			if(!addr_info){
				showErrorDialog("", "客户/厂商地址信息不能为空");
				return false;
			}
			// 保存的内容
			iary = {
				cus_id : cusNum,
				cus_name : cusNam,
				cus_desc : cusDes,
				cus_typ : cus_typ,
				loc_info : addr_info
			};
			// 输给后台的数据
			inObj = {
				trx_id : VAL.T_FBPBISCUS,
				action_flg : actionFlg,
				evt_usr : VAL.EVT_USER,
				iary : [ iary ]
			};
			outObj = comTrxSubSendPostJson(inObj);
			if (outObj.rtn_code === VAL.NORMAL) {
	
				$("input").attr(VAL.DISABLED_ATTR);
				$("select").attr(VAL.DISABLED_ATTR);
	
				if (actionFlg == "A") {
					// 加到表格的最后一行去，如果没有数据则加到第一行
					domObj.grids.$cusListGrd.jqGrid("addRowData", $.jgrid.randId(), iary);
					// 默认选择新加的行
					domObj.grids.$cusListGrd.setSelection(
							newRowId, true);
					// 保存成功后，修改按钮可用
					$("#update_btn").attr("disabled", false);
					showSuccessDialog("新增客户/厂商信息成功");
	
				} else if (actionFlg == "U") {
	                selRowId = domObj.grids.$cusListGrd
	                    .jqGrid("getGridParam",
	                        "selrow");
	                var rowData = domObj.grids.$cusListGrd.jqGrid("getRowData",selRowId);
	                var cusId = rowData.cus_id;
	                if (cusId) {
	                    iary.cus_id = cusId;
	                }
	                var inObj = {
	                    trx_id : VAL.T_FBPBISCUS,
	                    action_flg : 'Q',
	                    iary : [ iary ]
	                };
	                outObj = comTrxSubSendPostJson(inObj);
	                if (outObj.rtn_code === VAL.NORMAL) {
						domObj.grids.$cusListGrd.jqGrid(
						 "setRowData", selRowId,
						 outObj.oary[0]);
	                    showSuccessDialog("客户/厂商信息更新成功");
	                }
				}
			}
		},
	
		clear_func : function() {
			domObj.grids.$cusListGrd.jqGrid("clearGridData");
			$("input[type='text']").val("");
			SelectDom.setSelect($("select"), "", "");
			$("#cusDefConditionForm input").val("");
			$("#cusDefConditionForm input").attr(
					VAL.DISABLED_ATTR);
			$("#cusDefConditionForm select").attr(
					VAL.DISABLED_ATTR);
			domObj.buttons.$update_btn.attr(VAL.ENABLED_ATTR);
		},
	};
	
	/*------------------------点击客户列表，右边空间显示详情--------------------------*/
	function details(rowId) {
		if (domObj.$cusDes.attr("disabled") != "disabled") {
			showErrorDialog("", "目前处于编辑中，请勿进行查询操作");
			return false;
		}
		var inObj, outObj, cusId, iary = {};
		// 根据当前行的rowID获取当前行的数据
		var rowData = $("#cusListGrd").jqGrid("getRowData",
				rowId);
		// 得到客户Id
		cusId = rowData.cus_id;
		if (cusId) {
			iary.cus_id = cusId;
		}
		inObj = {
			trx_id : VAL.T_FBPBISCUS,
			action_flg : 'Q',
			iary : [ iary ]
		};
		outObj = comTrxSubSendPostJson(inObj);
		var oary = outObj.oary[0];
		if (outObj.rtn_code === VAL.NORMAL) {
			domObj.$cusNum.val(oary.cus_id);
			domObj.$cusNam.val(oary.cus_name);
			domObj.$cusDes.val(oary.cus_desc);
			SelectDom.setSelect(domObj.$cusFirmsSel,
					oary.cus_typ);
			/*domObj.$cusFirmsSel.val(oary.cus_typ);*/
			domObj.$addrInfo.val(oary.loc_info);
		}
	}
	
	/*--------------------------------总的页面初始化函数-----------------------------------*/
	var pageFnc = {
		initControl : function() {
			//初始化两个表格
			controlsFunc.initCusListGrd();
			$("#cusDefConditionForm input").attr(
					VAL.DISABLED_ATTR);
			$("#cusDefConditionForm select").attr(
					VAL.DISABLED_ATTR);
			controlsFunc.initCusTypSel();
		},
		clear : function() {
			//清除地址表里的信息
			domObj.grids.$cusListGrd.jqGrid("clearGridData");
			$("input[type='text']").val("");
			$("select").empty();
		},
		initEvent : function() {
			//按键初始化函数
			domObj.buttons.$query_btn.click(btnsFnc.query_func);
			domObj.buttons.$delete_btn
					.click(btnsFnc.delete_func);
			domObj.buttons.$update_btn
					.click(btnsFnc.update_func);
			domObj.buttons.$add_btn.click(btnsFnc.add_func);
			domObj.buttons.$save_btn.click(btnsFnc.save_func);
			domObj.buttons.$copy_btn.click(btnsFnc.copy_func);
			domObj.buttons.$rollback_btn
					.click(btnsFnc.rollback_func);
			domObj.buttons.$clear_btn.click(btnsFnc.clear_func);
		}
	}
	
	//运行绑定按钮函数
	pageFnc.clear();
	pageFnc.initControl();
	resizeFnc();
	pageFnc.initEvent();
        //enter
        /*document.onkeydown=function(event){
            var e = event || window.event || arguments.callee.caller.arguments[0];
            if(e && e.keyCode==13){ // 按 enter
                $('.bootbox').modal("hide");
            }
        }*/
});